If you have any problems or comments regarding VSamp, please email the author Malcolm Haylock at smaug@kagi.com or visit the VSamp web site at http://www.kagi.com/smaug/vsamp
Contents:
Introduction
Quick Demos
Registration
Overview
Using VSamp
Using VSamp VST
OMS Thru
Using VSamp with Sound Cards
Version History
Introduction
VSamp is a long-awaited program that turns the Macintosh into an OMS or FreeMIDI and Sound Manager compatible multitimbral sample playback module. Configured like a simple sampler, VSamp can be setup to playback on 16 MIDI channels with up to 64 samples per channel, mapped and enveloped to user-defined configurations. This can then be driven by an OMS-compatible sequencer or the included application 'OMS Thru' running on the same computer. VSamp also includes a VST plugin "VSamp VST" that can play VSamp instruments. This enables you to have access to the audio output of the plugin from within your VST-2 compatible sequencer.
Without registration, this program and plugin will stop playing a loaded bank after about four minutes from when the bank is loaded. The bank can be restarted with a single command. See the section "Registration" on how to obtain a fully operational version.
Very Quick Demo
1. Double-click on the file 'Acoustic Guitar Bank' in the folder 'Demo Bank' in the VSamp folder.
2. Choose Load Bank from the Bank menu.
5. Choose Bank->Play Scale->Channel 1. You should hear a C Major scale played on a sampled acoustic guitar.
Quick Demo with MIDI and Keyboard
1. If you don't yet have OMS 2.0 or later installed, download it free from www.opcode.com and install it. No specific setup of OMS is required for VSamp but you will need to configure it for any keyboards in your setup.
2. Launch 'VSamp' and choose Preferences from the Edit menu. Set the output resolution (8 or 16 bit) and sample rates to the same as shown in the Sound Out panel of the Sound control panel.
3. Choose Open from the File menu. Navigate to the folder 'Demo Bank' in the VSamp folder and open the file 'Acoustic Guitar Bank'.
4. Choose Load Bank from the Bank menu.
5. Launch 'OMS Thru' and hold down the mouse on the top bar, selecting the name of your controller keyboard and releasing the mouse. Similarly, hold down the mouse on the lower bar and select 'VSamp'. If VSamp doesn't appear in the pull down menu it means VSamp is not currently running.
6. Set your keyboard to transmit on MIDI channel 1 and play - you now have a sampled acoustic guitar!
7. If you have on OMS compatible sequencer, see the VSamp home page on using VSamp with your sequencer.
Registration
The version of VSamp included with this package requires a registration number, otherwise it will stop playing a loaded bank after about four minutes. The bank can be reloaded with a single command.
To obtain a registration number:
1) Launch the enclosed program "Register".
2) Type your name and email address in the upper left spaces provided.
3) Type how many single user licenses you require and if you'd like a site license or world license in the spaces provided.
4) Choose your payment method from the pull-down menu in the lower left area. The quickest way is to pay by credit card then email or fax the details. All credit card details are encrypted when you email them.
For credit card: enter your credit card details then click the Copy... button. Go to your email program and paste into an a new message. Send this to sales@kagi.com - not to me.
For cash, check and invoice: click the Print... button and send the form with your payment to the address on the printed form.
5) I will email a registration number as soon as I receive your details from kagi. Kagi handles payments only and does not provide technical support for VSamp.
Overview
Output resolution: 8 or 16 bit
Output frequency: 11025 to 44100 Hz
Sample Resolution: 8 or 16-bit (best with 16-bit)
Sample Frequency: any (best with 44.1kHz)
Sample Format: AIFF, Sound Designer II (SDII) or Macintosh Sound Resource.
Polyphony: up to 64 (computer dependent) voices dynamically allocated
Sample mapping: 64 samples per instrument
Sample Memory: Depends on memory of computer. Set preferred memory in 'Get Info' in Finder.
Multitimbral: 16 instruments per bank assigned to unique MIDI channels.
MIDI Implementation: note on, note on velocity, note off (0x9X or 0x8X with 0 velocity), dynamic volume (ctrl 7), dynamic pan (ctrl 10), channel sustain pedal (ctrl 64), channel pitch bend, all sound off (ctrl 120), reset all controllers (ctrl 121) and all notes off (ctrl 123).
MIDI compatibility: Requires OMS 2.0 or greater (free from www.opcode.com) or FreeMIDI 1.34 or later (free from www.motu.com). Use FreeMIDI if you want to use with VSamp with Performer, otherwise use OMS.
System Requirements
* Any powermac or older machine with 68020, 030, 040 processor . Will not run on MacPlus, SE, Classic, Powerbook 100 or original Mac Portable. Best with 16-bit sound as on all powermacs and Quadra 660AV and 840AV.
* OMS 2.0 or later (free from www.opcode.com) or FreeMIDI 1.34 or later (free from www.motu.com)
* Sound Manager 3.1 or later strongly recommended (included with System 7.5.3 and later).
* An OMS or FreeMIDI-compatible sequencer or the included application 'OMS Thru'.
* A VST-2 compatible sequencer for using VSamp VST.
Polyphony
Polyphony is user-defined and depends on the processor speed. The benchmark powermacs I have run this on is a powermac 7200/90 (PPC 601 chip) which gives 16 note polyphony for 16-bit 44.1kHz sound without using 'high quality' pitch shifting and 9 notes with the higher quality pitch shifting. A 7600/132 (PPC 604e) gives 32 notes at high quality. Please let me know what performance different machines are capable of. If the polyphony is set too high, a disjointed sound will be heard due to breaks between the double buffering.
Sample Management
The three limitations imposed by the program on sample management are the number of samples that can be loaded, the total amount of memory which all samples occupy, and if you use sound resources to store samples, the length of any one sample. Samples are stored as AIFF files, Sound Designer II files or Macintosh sound resources. Shareware programs such as the excellent D-SoundPro can be used to record and edit samples on your Macintosh.
The maximum number of samples that can be loaded is in this case a fairly arbitrary number, but it was decided that 64 samples per instrument for each of the sixteen instruments (1024 samples) is adequate in most cases. For comparison, an Akai S3000 sampler can only store 255 in total while an Emu ESI-32 sampler can store up to 1000.
The memory available to the samples is limited by the size of the application's heap. This value is set in the program's Get Info window accessed in the Finder. VSamp samples contain a header as well as the sample data, but the header size is insignificant with regard to memory allocation. The program has been used with 64Mb of samples loaded without a problem and theoretically it could go much higher if more computer RAM was available.
The reliance on sound resources for the sample format limits the maximum size of any one sample. 'Inside Macintosh' mentions that resources should be kept below about 5 Mb, but as this represents almost a minute of 16-bit 44.1kHz mono sound, it is not really a concern unless the program is to be used primarily for triggering long samples. In this case a digital sequencer, such as Opcode's Studio Vision, would be a more appropriate tool, as long samples do not have to be resident in RAM and allows complete synchronisation between MIDI and digital audio. If you use AIFF or SDII files for sample storage there is no limitation on sample size;
MIDI Compatibility
The integration of this program into currently existing systems has been an important consideration in its design, and for this reason it was decided that the best MIDI systems to use would be the 'Open Music System' (formerly ╘Opcode MIDI System╒) or OMS and MOTU's FreeMIDI. These powerful MIDI systems were written by Opcode and Mark of the Unicorn to control the MIDI routing for their various hardware and software products. VSamp's MIDI routing operates by opening a virtual MIDI destination in OMS (or FreeMIDI if it is installed) which is recognised by other OMS or FreeMIDI-compatible applications running concurrently. VSamp has been successfully used with OMS compatible sequencers such as Opcode's Vision, Steinberg's Cubase, Coda's Finale and Emagic's Logic family of sequencer programs. Sequencers which support FreeMIDI include MOTU's Performer family.
Using VSamp
VSamp is a stand-alone application that can be launched from the Macintosh Finder. As stated earlier, the memory available to VSamp for storage of samples can be set from the program's Get Info box. Set the 'preferred size' to the maximum amount of RAM that would be free with the OMS sequencer running concurrently, allowing a bit spare for the system.
The VSamp interface is very simple to use in that it contains only five menus. The first is the File menu which allows the user to configure instruments and banks. The second menu is the Edit menu, containing the standard edit commands. The Options menu contains several items for configuring VSamp as well as the Preferences item where the polyphony, sound buffer size, output resolution, sample rate, headroom and Middle C value are set. The fourth menu is the Bank menu which is used for loading and unloading banks into RAM as well as testing the currently loaded bank.
Setting the Sound Format
The type of sound output by VSamp needs to agree with the values set in the sound control panel for maximum efficiency. VSamp is capable of outputting sound as 8 or 16-bit numbers at various sample rates from 11 to 44.1 kHz. First go to the Sound control panel for your macintosh and select a sample resolution and rate, preferably the highest values. Then go to VSamp and set the same value in the Preferences item. The sample rate has a big effect on the polyphony and in general halving the sample rate will double the available polyphony. Therefore if you can make do with 22kHz sound, do so. The sample resolution has a much smaller impact on speed so if you have 16-bit sound available, use it.
Arranging Samples
The arrangement of sounds in VSamp is very straightforward. The most basic unit is the sample, stored as a Macintosh sound resource, Sound Designer II file or AIFF file. These files contain all the necessary information about the sample, including base note , sample rate and loops. Note that SDII files can not store the sample's base note so this value must be set in the instrument. These values are set using either a commercial digital waveform editor such as Macromedia's 'SoundEdit 16', Passport's 'Alchemy' or Digidesign's 'Sound Designer' software or alternatively with such shareware programs as the excellent 'D-SoundPRO', 'Sound Effects', 'SndSampler' and ╘SoundHack╒ available from info-mac. For accurately setting loops a waveform editor is recommended.
The organisation of a group of samples (e.g. several piano samples) across the keyboard is called an instrument. A VSamp instrument is created or edited with the commands New and Open respectively, chosen from the File menu.
Each line of this instrument is used to select a sample for this instrument and define it's lower and upper notes on the keyboard. Click the blue sample box (2nd column) to select the sample file. The next column is a pop-up menu of all the sound resources in the selected file. If the sample is an AIFF or SDII file this column will display 'AIFF' or 'SDII' and can not be altered. The resources are listed by ID number and name, and selecting a resource displays it's number in the Resource box (3rd column). Next the lower and upper MIDI notes are entered in the Note Range columns. You can use a MIDI keyboard to enter these values but you must have the application 'OMS Thru' or a sequencer running to route the MIDI from your keyboard to VSamp. These values can be entered as either numbers or names. If two samples overlap in note range and note velocity range, only the sample further down the list will be heard for the overlapped notes and velocities. The next column is where you can set the sample's pitch. Set this to 0 if you want to use the pitch stored in the sample. Note that SDII files can not store pitch data and so default to middle C.
The next column is where you can set the pan of the sample in the stereo output. The pan of the sample is also influenced by the MIDI channel's pan value (ctrl #10). If the channel pan is centre then the samples will pan as set in the instrument window. As the channel pan is moved to the right the samples will all pan to the right until all samples are heard from just the right channel. The same applies to panning left. Enter a pan for the sample between -64 and 63.
The next two columns are where you can set the velocity range for which you want the sample to trigger. Leave these values at 1 and 127 for all velocities. For cross switching samples assign two samples to the same notes but different velocity ranges.
The final column is where you can set mute groups for samples. If you wish a sample to switch off another sample when it is played, assign them the same number between 1 and 127. This is particularly useful in drum kits where one hihat sample can mute another. A sample with a unique group number will mute itself ie. if it has a note range of several notes then it will switch off any other notes using the same sample.
An easier way to add samples is to drag them from the Finder onto an instrument window. If the samples have their pitches set then VSamp will automatically arrange the samples is ascending order and set their note ranges (AIFF files only).
Clicking on the Envelope button brings up the window where you can enter the envelope characteristics for this instrument. The diagram explains what each item refers to. Note that all times are in 100ths of a second with a maximum of 9900 (99 secs). The sustain value is in percent of maximum amplitude. Click OK to save this envelope or Cancel to return to the previous values. Finally select Save from the File menu to save your instrument.
It is important to note that all samples must reside in the same folder as the instrument file, otherwise you will get an error message when trying to load a bank. Different instruments can reside in different folders providing all the samples included in an instrument are located in the folder with the instrument.
The instrument also contains a box marked 'Track'. Activating this means VSamp will use the sample's pitch information to transpose the sample to the correct pitch. If you leave this box unchecked, VSamp will just play back the sample without transposing it. You will usually leave this box checked unless you are creating drum instruments where you don't want the samples transposed.
The instruments pitch bend range is stored in the 'Pitch Bend' box. This overrides the value in the bank window.
Arranging Instruments
The manner in which instruments are assigned to MIDI channels constitutes a bank. Using New or Open from the File menu to create or edit a bank respectively, brings up a window with sixteen lines, one for each instrument.
Each line is used to assign a VSamp instrument to a MIDI channel. Simply select the instrument by clicking on one of the blue instrument boxes then type the MIDI channel (1-16) in the Channel column. If two instruments are given the same channel, only the instrument further down the list will be heard. Alternatively drag instruments from a Finder window onto a bank window and they will be added with incremented MIDI channels.
The pitch bend response is set on the top line. This is the number of semitones that a full bend activates. The maximum is 12 (1 octave). This can be overridden for any instrument by setting the pitch bend in the instrument window.
Each line also includes a check box for higher quality (but slower) pitch shifting of the sample. Enabling the checkbox 'HiQ' will use interpolation for this instrument but will reduce available polyphony. This is not really a problem for faster Macintoshes.
Finally select Save to save the bank.
Loading a Bank
A VSamp bank is loaded into memory using the Load Bank command from the Bank menu. This command is only available when a bank is open and is the front document (choose from the Windows menu if needed). This command opens each of the files referenced by the various instruments in the bank and loads the relevant samples into memory, assigning each to a range of notes for it's particular MIDI channel. Appropriate error messages are given for such problems as not being able to find files or resources, or running out of memory. If the program can't find a file, check that all samples are in the same folder as the instrument file. Instruments can be located in different folders though. Note that the bank loaded is as the window shows, not how the bank was last saved. On the contrary though, any instruments loaded are as they are saved to disk.
Unloading a Bank
When a bank is loaded the processor will be doing much extra processing even when no sound is playing. Choosing Unload Bank prevents this when you need the processor for other tasks. A currently loaded bank is also unloaded when you choose Preferences from the Edit menu.
Saving Output as a File
Choosing Load to File from the Bank menu does the same as Load Bank but output is also saved to a stereo Sound Designer II file. You are prompted for a name before the bank is loaded and saving output starts as soon as soon as the bank is loaded. Alternatively if you have the MIDI Start/Stop item in the Options menu enabled, then VSamp will wait for a MIDI Start or Continue command before commencing writing to the file. With this item enabled it will also stop writing when it receives a MIDI Stop command. Note that output files can be large, for example at 44kHz 16-bit settings the output file will take up about 10MB per minute.
Testing a Bank
Choose Play Scale->Channel X from the bank menu to play a C Major scale on the selected MIDI channel for the currently loaded bank. This item is only enabled when a bank is loaded.
Resetting Sound
Choose Panic from the Options menu to stop all sound and reset all MIDI controllers. This item is only enabled when a bank is loaded.
Accessing VSamp from Sequencer
Refer to your sequencer's manual on using OMS or FreeMIDI. Directions for each of the major sequencers can be found at the VSamp home page.
Setting the Polyphony
VSamp requires you to set the polyphony to avoid breaks in the audio signal. A simple test needs to be carried out. Load a bank into VSamp and with the sustain pedal down play up a scale, counting the notes until the sound deteriorates. Set this number (minus two for headroom) in the polyphony field from the Preferences item in the Edit menu. Note that if you push the computer too hard the computer is more likely to crash and there will not be enough power to run a sequencer in the foreground. Polyphony is also determined by how many instruments in each bank have their "Hi Quality" check boxes set. It's best to test the polyphony with this box checked. If you use the Acoustic Guitar Instrument for this test you should first open this instrument, set it's envelope's sustain value to 100 and save the file before using it. That way the sound will not fade when you sustain notes.
Fine Tuning the Program
Other fields that can be set in the preferences are the size of the sound buffers, the output sound format and the headroom. The default of 128 for the buffer size (with 44.1kHz output) is a good compromise between the responsiveness of the program and the polyphony. A smaller number will make the program react faster and give smoother envelopes but will reduce the available polyphony. The program will not let you set a value lower than 32 or higher than 512. Increasing this value gives more polyphony but slows the responsiveness. Please play around with this value and let me know what you think is best.
The headroom setting sets the output level of VSamp and defaults to 6dB. Setting a value closer to 0dB will give a stronger output and better quality sound but will more likely distort with multiple voices. If you don't use many voices you can set this to 0dB but beware - the distortion when it happens is severe! For higher polyphony settings I suggest you set this to 12dB or even 18dB.
Using VSamp VST
VSamp VST is a VST-2 plugin that can play VSamp instruments. You will need to create the instrument with the VSamp application. VSamp VST is controlled and configured from within the sequencer. You can only use VSamp VST with a VST-2 compatible sequencer. This as of 28th December 1998 this includes Cubase 4.1 and Logic 4.1 only.
To use VSamp VST with Cubase 4.1:
* Put the file "VSamp VST" in the VstPlugIns folder which is in the Cubase folder.
* Launch Cubase
* Select "VST Instruments" from the Panels menu.
* Select "VSamp VST" from the popup menu "No VST Instr." on the Instruments window. This will create a new VSamp VST instrument.
* Click on the power button on the left side of the VSamp VST Instrument.
* Each VSamp VST instrument can store up to 32 programs which are a combination of a VSamp Instrument with polyphony and voice settings. These programs are selected with the program arrows.
* To edit a program select the program with the program arrow buttons then press the Edit Button.
* Register the plugin if you have a VSamp registration number by pressing the "Register" button.
* Press the Select button and select your VSamp Instrument.
* Use the faders to set the number of voices that this Instrument will play. A lower value will put less strain on your computer's processor. Select also the headroom. Leave this at 0dB unless the sound starts to distort.
* Close the Editor window by clicking in the close box (top left of window).
* You can create as many of these Instruments as you like provided you have enough processing power. They will be called VSamp VST (1), VSamp VST (2) ....
* Assign a MIDI track to this instrument by selecting the instrument in the track's output window.
OMS Thru
OMS Thru is a program written by Opcode and modified by me which acts as a simple MIDI patchbay for OMS. After installing OMS 2.x, you can use this program to route the MIDI messages from a source (top pull-down menu) to a destination (bottom menu). After starting VSamp, it should appear as a destination in OMS Thru. OMS Thru is not required when using a sequencer.
Using VSamp with Soundcards
VSamp has been tested with the Pro Audio Spectrum 16 sound card which doesn't support multichannel sound. Since VSamp only uses one sound channel this is not a problem as long as other applications don't require sound channels. I have found that Opcode's Vision sequencer allocates a sound channel during playback and record which stops VSamp playing. The way to prevent this is as follows:
1) Go to the Sound Out panel of the Sound control panel and select the output device that you want VSamp to use (PAS16 card)
2) Launch VSamp and load a bank. This is when VSamp opens it's sound channel.
3) Go to the Sound Out panel of the Sound control panel and select a different output device that other applications can use (MAC internal).
4) Launch the sequencer or other application.
The VSamp sound will then go to the sound card and other applications will send sound to the Mac which shouldn't upset VSamp. Whenever you load a new bank you will have to change the Sound Out panel of the Sound control panel to your soundcard before you load the bank, then back again before you continue.
Version History:
2.7.0, 28th December 1999:
1) First release of VSamp VST.
2) VSamp bank now can locate instruments that have moved or been renamed.
3) Minor fixes to instrument window so that clicking on a blank box then pressing return does not give an error about an invalid value.
4) Loading a bank that refers to a non-existent file no longer creates the file but instead gives an error message.
2.6.0, 22nd November 1999:
1) Added velocity settings in instruments.
2) Added pitch bend setting in instruments.
3) Added panic command in options menu.
4) Adding a sample to an instrument no longer resets it's note range.
5) 64 note polyphony.
6) 64 samples per instrument.
7) Windows' last position and size is remembered.
8) Added mute groups in instruments.
9) Minor bug fixes.
2.5.0, 4th October 1999:
1) Added ability for samples to be individually panned in an instrument.
2) Better compatibility with FreeMIDI 1.4.
2.4.9, 1st August 1999:
1) Adding AIFF files to an instrument gives "File Positioning Error" if no pitch is set for the sample.
2.4.8, 27th July 1999:
1) Interim release for compatibility with FreeMIDI 1.4.